The present invention relates to multiprocessor systems having caches and physical memory and, more particularly, relates to prediction in a multiprocessor system of whether a data item responsive to a cache miss can be found in cache or physical memory.
In a multiprocessor system, when there is a cache miss in one of the processors, the data item may be available in the cache of another processor. If the data item is not available in any of the other processors, then memory is accessed and the data item is obtained from memory.
On a cache miss in one of the processors, it would be desirable to get the data item with the lowest latency while keeping the number of memory accesses as low as possible. Reduced latency increases processor performance, whereas, reducing memory accesses reduces the contention for off-chip bandwidth and or ports in the memory banks, and also reduces power consumption in the memory system. However, the two objectives of reduced memory latency and fewer memory accesses may contradict each other. Current processors typically employ a LateAccess policy, which waits for a cache snoop response from other processors before accessing memory. If the data item is not present in the multiprocessor system, then memory is accessed. This policy avoids extraneous memory fetches albeit at increased latency for memory accesses. Processors can also employ an EarlyAccess policy which reduces memory latency by accessing memory in parallel with snooping the other processors. If the data item is already present in other processors, then the data item obtained from memory is discarded. These extraneous fetches from memory cause contention in the memory system and increase power consumption.